﻿/*
SINACOR - BMF&Bovespa
Arquivo: NoTipoObjetoConsulta.cs
Criado em: 07-abr-2010 15:53:21
Arquiteto Responsável: p-RAMelo
*/
using System;
using System.Collections.Generic;
using System.Text;
using Sinacor.Infra.UI.Common;


namespace Sinacor.UI.Bovespa.ManutencaoOrdens.Model 
{
	/// <summary>
	/// Nó representa o tipo de objeto de consulta, Ordens ou Negócios
	/// </summary>
	[Serializable]
	public class NoTipoObjetoConsulta : BaseModel, Sinacor.Infra.UI.Common.IHierarchicalItem<Model.NoNaturezaOperacao,IHierarchicalItem,List<IHierarchicalItem>> 
	{

		#region Construtor

		/// <summary>
		/// Construtor padrão
		/// </summary>
		/// <param name="parent"></param>
		/// <param name="tipoObjeto"></param>
		public NoTipoObjetoConsulta(Model.NoNaturezaOperacao parent, Model.Enum.TipoObjetoConsulta tipoObjeto)
		{
		    _parent = parent;
		    _tipoObjeto = tipoObjeto;
            _children = new List<IHierarchicalItem>();
		}

		#endregion

		#region Atributos

		private List<IHierarchicalItem> _children = null;
		private Model.NoNaturezaOperacao _parent;
		private Model.Enum.TipoObjetoConsulta _tipoObjeto;

		#endregion

		#region Propriedades

        /// <summary>
        /// Children
        /// </summary>
		public List<IHierarchicalItem> Children
		{
            get 
            { 
                return _children; 
            }            
		}

        /// <summary>
        /// Children
        /// </summary>
		System.Collections.IEnumerable Sinacor.Infra.UI.Common.IHierarchicalItem.Children
		{
            get { return (System.Collections.IEnumerable)_children; }
		}

        /// <summary>
        /// Parent
        /// </summary>
		public Model.NoNaturezaOperacao Parent
		{
            get 
            { 
                return _parent; 
            }
            set
            {
                SetValue<Model.NoNaturezaOperacao>("Parent", ref _parent, value);
            }
		}

        /// <summary>
        /// Parent
        /// </summary>
        Sinacor.Infra.UI.Common.IHierarchicalItem Sinacor.Infra.UI.Common.IHierarchicalItem.Parent
        {
            get { return (Sinacor.Infra.UI.Common.IHierarchicalItem)_parent; }
        }

        /// <summary>
        /// Text
        /// </summary>
		public String Text
		{
            get 
            {  
                if(_tipoObjeto == Model.Enum.TipoObjetoConsulta.Ordem)
                    return PSE.Framework.UI.Resources.ResourceProviderManager.GetResourceProvider().TryGetResource("Bovespa.ManutencaoOrdens.Label.Ordens").ToString();
                else
                    return PSE.Framework.UI.Resources.ResourceProviderManager.GetResourceProvider().TryGetResource("Bovespa.ManutencaoOrdens.Label.Negocios").ToString();
            }
		}

        /// <summary>
        /// Tipo do objeto
        /// </summary>
		public Model.Enum.TipoObjetoConsulta TipoObjeto
		{
            get { return _tipoObjeto; }
		}
		#endregion

	}

}